package com.jic.market.service.rest.discount;

import com.jic.market.enums.DiscountAmountServiceOperateEnum;
import com.jic.market.enums.FrontPromotionTypeEnum;
import com.jic.market.impl.rest.discount.model.ConditionDiscountModel;
import com.jic.market.impl.rest.discount.model.GoodsDetailModel;
import com.jic.market.impl.rest.discount.processor.AbstractConditionDiscountProcessor;

import java.util.List;
import java.util.Map;

/**
 * @author yinhaijun
 * @date: 2020/5/6
 */
public interface DiscountProcesserService {

    AbstractConditionDiscountProcessor getConditionProcessor(FrontPromotionTypeEnum frontPromotionTypeEnum);

    void processorPromotion(Map<String, GoodsDetailModel> goodsDetailModelMap, Object request, String thirdUserId, DiscountAmountServiceOperateEnum operateEnum );

    void processorPromotion(List<ConditionDiscountModel> conditionDiscountModelList, Map<String, GoodsDetailModel> goodsDetailModelMap, Object request, DiscountAmountServiceOperateEnum operateEnum );

    void couponQuery(List<ConditionDiscountModel> conditionDiscountModelList, Map<String, GoodsDetailModel> goodsDetailModelMap, Object request);

    void couponProcess(List<ConditionDiscountModel> conditionDiscountModelList, Map<String, GoodsDetailModel> goodsDetailModelMap, Object request, DiscountAmountServiceOperateEnum operateEnum );


}
